

from Reg import *
from condition_c import *


RegKeyword("abstract")
RegKeyword("as")
RegKeyword("base")
RegKeyword("bool")
RegKeyword("break")
RegKeyword("byte")
RegKeyword("case")
RegKeyword("catch")
RegKeyword("char")
RegKeyword("checked")
RegKeyword("class")
RegKeyword("const")
RegKeyword("continue")
RegKeyword("decimal")
RegKeyword("default")
RegKeyword("delegate")
RegKeyword("do")
RegKeyword("double")
RegKeyword("else")
RegKeyword("enum")

RegKeyword("event")
RegKeyword("explicit")
RegKeyword("extern")
RegKeyword("false")
RegKeyword("finally")
RegKeyword("fixed")
RegKeyword("float")
RegKeyword("for")
RegKeyword("foreach")
RegKeyword("goto")
RegKeyword("if")
RegKeyword("implicit")
RegKeyword("in")
RegKeyword("int")
RegKeyword("interface")
RegKeyword("internal")
RegKeyword("is")
RegKeyword("lock")
RegKeyword("long")

RegKeyword("namespace")
RegKeyword("new")
RegKeyword("null")
RegKeyword("object")
RegKeyword("operator")
RegKeyword("out")
RegKeyword("override")
RegKeyword("params")
RegKeyword("private")
RegKeyword("protected")
RegKeyword("public")
RegKeyword("readonly")
RegKeyword("ref")
RegKeyword("return")
RegKeyword("sbyte")
RegKeyword("sealed")
RegKeyword("short")
RegKeyword("sizeof")
RegKeyword("stackalloc")

RegKeyword("static")
RegKeyword("string")
RegKeyword("struct")
RegKeyword("switch")
RegKeyword("this")
RegKeyword("throw")
RegKeyword("true")
RegKeyword("try")
RegKeyword("typeof")
RegKeyword("uint")
RegKeyword("ulong")
RegKeyword("unchecked")
RegKeyword("unsafe")
RegKeyword("ushort")
RegKeyword("using")
RegKeyword("virtual")
RegKeyword("void")
RegKeyword("volatile")
RegKeyword("while")


RegKeyword("add")
RegKeyword("and")
RegKeyword("alias")
RegKeyword("ascending")
RegKeyword("async")
RegKeyword("await")
RegKeyword("by")
RegKeyword("descending")
RegKeyword("dynamic")
RegKeyword("equals")
RegKeyword("from")

RegKeyword("get")
RegKeyword("global")
RegKeyword("group")
RegKeyword("init")
RegKeyword("into")
RegKeyword("join")
RegKeyword("let")
RegKeyword("managed")
RegKeyword("nameof")
RegKeyword("nint")
RegKeyword("not")

RegKeyword("notnull")
RegKeyword("nuint")
RegKeyword("on")
RegKeyword("or")
RegKeyword("orderby")
RegKeyword("partial")
RegKeyword("record")
RegKeyword("remove")
RegKeyword("select")

RegKeyword("set")
RegKeyword("unmanaged")
RegKeyword("value")
RegKeyword("var")
RegKeyword("when")
RegKeyword("where")
RegKeyword("with")
RegKeyword("yield")


RegSymbol("(", "lparenthese")
RegSymbol(")", "rparenthese")
RegSymbol("[", "lbracket")
RegSymbol("]", "rbracket")
RegSymbol("{", "lbrace")
RegSymbol("}", "rbrace")
RegSymbol(",", "comma")
RegSymbol(".", "dot")
RegSymbol("?", "question")
RegSymbol(":", "colon")
RegSymbol(";", "semicolon")
RegSymbol("=", "operator_assign")
RegSymbol("#", "preprocess")

RegSymbol("*", "operator_indirection")
RegSymbol("&", "operator_addressof")
RegSymbol("+", "operator_plus")
RegSymbol("-", "operator_negation")
RegSymbol("*", "operator_multiplication")
RegSymbol("/", "operator_division")
RegSymbol("%", "operator_modulus")
RegSymbol("!", "operator_logical_negation")
RegSymbol(">", "operator_greater")
RegSymbol("<", "operator_less")
RegSymbol("!", "operator_not")
RegSymbol("&", "operator_bit_and")
RegSymbol("|", "operator_bit_or")
RegSymbol("^", "operator_bit_xor")
RegSymbol("~", "operator_bit_complement")

RegSymbol("<<=", "operator_left_shift_assign")
RegSymbol(">>=", "operator_right_shift_assign")
RegSymbol("->", "operator_arrow")
RegSymbol("+=", "operator_add_assign")
RegSymbol("-=", "operator_subtract_assign")
RegSymbol("*=", "operator_multiply_assign")
RegSymbol("/=", "operator_divide_assign")
RegSymbol("%=", "operator_modulus_assign")
RegSymbol("&=", "operator_bit_and_assign")
RegSymbol("^=", "operator_bit_exclusive_or_assign")
RegSymbol("!=", "operator_bit_inclusive_or_assign")
RegSymbol("<<", "operator_bit_left_shift")
RegSymbol(">>", "operator_bit_right_shift")
RegSymbol("==", "operator_equal")
RegSymbol("!=", "operator_notequal")
RegSymbol(">=", "operator_ge")
RegSymbol("<=", "operator_le")
RegSymbol("++", "operator_increment")
RegSymbol("--", "operator_decrement")
RegSymbol("&&", "operator_and")
RegSymbol("||", "operator_or")

RegSymbol("=>", "operator_lambda")